﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Autenticazione.BusinessObject;

namespace Autenticazione
{
    public partial class Iscrizioni : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Fights fights = new Fights();
            
            if (Session["EMail"] == null)
                Response.Redirect("Autenticazione.aspx");

            msgLoggedUser.Text = string.Format("Utente logginato: {0}", Session["EMail"].ToString());

            if (!IsPostBack)
            {
                fights.PopulateFights(Session["EMail"].ToString());
                LoadGrid();
            }
        }

        private void LoadGrid()
        {
            BusinessObject.Fights f = new BusinessObject.Fights();
            DataTable dt = null;
            DataTable dtView = null;

            if (Session["EMail"] == null)
                return;

            dt = f.GetTbFights(Session["Email"].ToString());

            dtView = dt.Clone();

            for (int i = dtgFights.CurrentPageIndex * dtgFights.PageSize; i <= (dtgFights.CurrentPageIndex + 1) * dtgFights.PageSize - 1; i++)
            {
                if (i <= dt.Rows.Count - 1)
                    dtView.ImportRow(dt.Rows[i]);
            }

            dtgFights.VirtualItemCount = dt.Rows.Count;

            dtgFights.DataSource = dtView;
            dtgFights.DataBind();
        }

        protected string GetIscrizione(int i, object iscrizione)
        {
            return iscrizione.ToString().Substring(i - 1, 1) == "1" ? "Si" : "No";
        }

        protected bool GetSelected(int i, object iscrizione)
        {
            return iscrizione.ToString().Substring(i - 1, 1) == "1" ? true : false;
        }

        protected void dtgFights_Edit(object sender, DataGridCommandEventArgs e)
        {
            dtgFights.EditItemIndex = e.Item.ItemIndex;

            LoadGrid();
        }

        protected void dtgFights_Cancel(object sender, DataGridCommandEventArgs e)
        {
            dtgFights.EditItemIndex = -1;

            LoadGrid();
        }

        protected void dtgFights_Update(object sender, DataGridCommandEventArgs e)
        {
            BusinessObject.Fights f = new BusinessObject.Fights();
            CheckBox chk = null;
            string iscrizione = string.Empty;

            if (!Page.IsValid || Session["EMail"] == null)
                return;

            f.Id = long.Parse(dtgFights.DataKeys[e.Item.ItemIndex].ToString());
            f.EMail = Session["EMail"].ToString();
            chk = e.Item.FindControl("edit_Campo1") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo2") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo3") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo4") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo5") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo6") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo7") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo8") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo9") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo10") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo11") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo12") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo13") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo14") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo15") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            chk = e.Item.FindControl("edit_Campo16") as CheckBox;
            if (chk != null)
                iscrizione = string.Concat(iscrizione, chk.Checked ? "1" : "0");

            if (Session["EMail"] == null)
                Response.Redirect("Autenticazione.aspx");

            f.Iscrizioni = iscrizione;
            f.Update();

            dtgFights.EditItemIndex = -1;
            LoadGrid();
        }

        protected void dtgFights_SelectedIndexChanged(object sender, DataGridPageChangedEventArgs e)
        {
            dtgFights.CurrentPageIndex = e.NewPageIndex;
            dtgFights.EditItemIndex = -1;
            LoadGrid();
        }
    }
}